﻿using iTextSharp.text;
using iTextSharp.text.pdf;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ITextSharpPDF
{
    class Example
    {
        /// <summary>
        /// 表格单元的行|列合并、填充距离、线条颜色、背景色
        /// </summary>
        public static void TableCellSpan()
        {
            Console.WriteLine("Chapter 5 example 5: colspan, rowspan, padding, spacing, colors");
            // step 1: creation of a document-object
            Document document = new Document();
            try
            {
                // step 2:
                // we create a writer that listens to the document
                // and directs a PDF-stream to a file
                PdfWriter.GetInstance(document, new FileStream("Sharp0505.pdf", FileMode.Create));
                // step 3: we open the document
                document.Open();
                // step 4: we create a table and add it to the document
                PdfPTable table = new PdfPTable(4);

                table.SpacingAfter = 5;
                PdfPCell cell = new PdfPCell(new Phrase("header"));
                cell.Padding = 3;
                cell.Colspan = 3;
                table.AddCell(cell);
                cell = new PdfPCell(new Phrase("example cell with colspan 1 and rowspan 2"));
                cell.Rowspan = 2;
                cell.BorderColor = new Color(255, 0, 0);
                table.AddCell(cell);
                table.AddCell("1.1");
                table.AddCell("2.1");
                table.AddCell("1.2");
                table.AddCell("2.2");
                table.AddCell("cell test1");
                cell = new PdfPCell(new Phrase("big cell"));
                cell.Rowspan = 2;
                cell.Colspan = 2;
                cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0);
                table.AddCell(cell);
                table.AddCell("cell test2");
                document.Add(table);
            }
            catch (DocumentException de)
            {
                Console.Error.WriteLine(de.Message);
            }
            catch (IOException ioe)
            {
                Console.Error.WriteLine(ioe.Message);
            }
            // step 5: we close the document
            document.Close();
        }
    }
}
